package site.service;

import site.entity.Article;
import site.entity.Category;
import site.entity.Role;
import site.entity.User;

public class SiteSystem {

	/**
	 * 初始化网站系统
	 */
	public static void initiate() {
		System.out.println("初始化系统...");

		UserRepository userRepository = new UserRepository();

		// ===== 创建基本角色 ===== //
		Role role = new Role();
		role.setName("系统超级管理员");
		userRepository.saveRole(role);
		role.setName("网站管理员");
		userRepository.saveRole(role);
		role.setName("企业会员");
		userRepository.saveRole(role);
		role.setName("普通会员");
		userRepository.saveRole(role);

		// ===== 创建基本用户 ===== //
		User user = new User();
		user.setName("SiteAdmin");
		user.setEmail("neolimeng@gmail.com");
		user.setPassword("neowoxnsk");
		user.setRid(Role.SUPER_ADMINISTRATOR);
		user.setStatus(User.STATUS_ACTIVATED);
		userRepository.saveUser(user);
		user = userRepository.getUserByUuid(user.getUuid());
		user = new User();
		user.setName("管理员");
		user.setEmail("tw@ustb.edu.cn");
		user.setPassword("tuanwei");
		user.setRid(Role.ADMINISTRATOR);
		user.setStatus(User.STATUS_ACTIVATED);
		userRepository.saveUser(user);
		user = userRepository.getUserByUuid(user.getUuid());

		// ===== 创建类别基本信息 ===== //
		CategoryRepository categoryRepository = new CategoryRepository();
		String[] categories = { "机构设置", "工作职责", "团委人员", "团学快讯", "团内新闻", "院系新闻",
				"通知公告", "团学视频", "图片新闻", "校团发", "校团发", "团委机关", "基层团委", "学生组织",
				"缤纷社团", "下载专区", "常用审批", "手机报" };
		for (int i = 0; i < categories.length; i++) {
			Category category = new Category(i + 1, categories[i]);
			categoryRepository.saveCategory(category);
		}

		// === 创建临时测试文章 === //
		ArticleRepository articleRepository = new ArticleRepository();
		for (int j = 0; j < categories.length; j++) {
			for (int i = 0; i < 25; i++) {
				Article article = new Article();
				article.setTitle("最新=" + categories[j] + (i + 1));
				article.setContent("文章内容文章内容文章内容文章内容文章内容文章内容文章内容文章内容文章内容文章内容文章内容文章内容文章内容文章内容文章内容文章内容文章内容文章内容文章内容文章内容文章内容文章内容文章内容文章内容文章内容文章内容文章内容文章内容文章内容文章内容文章内容文章内容文章内容");
				article.setAuthor(user);
				article.setCid(j + 1);
				article.setStatus(Article.STATUS_CHECKED_PASS);
				articleRepository.save(article);
			}
		}
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		SiteSystem.initiate();
	}

}
